In the information age, large volumes of information needs to be collected, transmitted and managed; thus, strict requirements are laid on the existing information application technology. Therefore, information synchronization and information sharing are of special importance.
Data synchronization technology has been widely applied to various industries such as communication and network management, etc. For example, in telecommunication network management systems, a telecommunication network becomes more and more complex. When a network element device accesses a telecommunication network management system, the network management system needs to keep part or all of the configuration information of the network element, which is generally queried and obtained from the network element via a Man-Machine Language (MMI) command. When a user modifies the configuration information of the device via a local operation and maintenance terminal, the network management system should be able to be notified in time and then refresh its own configuration information, so as to keep consistent with the real-time data kept on the device side.
In the existing telecommunication system, a method for timed synchronization is usually employed; in other words, a network management system sends a data configuration query command to a device at a certain designated time point (for example, once per day) and refreshes its own configuration data according to the query result. This method has the following disadvantages: 1) real-time synchronization cannot be realized, and configuration modification on a network element is usually reflected to the network management system in a period of time; and 2) a query process will be carried out no matter whether configuration modification appears, and all the configuration data may be checked; thus, the data flow may be very large.
In another method, data collection and synchronization are synthetically managed and scheduled using a relational database. The relational database includes several relationship tables and other database objects, wherein each relationship table comprises several records. In the practical application of the relational database, situations in which “The existing data set is modified and then the modified data set is processed” exist in large quantities. For example, in the daily maintenance of base station device in a Code Division Multiple Access (CDMA) base station system, the object of modifying the operation data of a base station device and keeping the data in maintenance commercial database and the base station totally consistent with each other may be attained by modifying an operation and maintenance commercial database, obtaining the data in the operation and maintenance commercial database via a synchronization server as controlled by a client end device, and then synchronizing the data with a real-time database in the base station device via a socket. At present, for the data set modified, data are usually processed in the following two methods.
Method 1: All the data in all the relationship tables in the relational database are taken as the processing object. The same as the method for timed synchronization in a telecommunication system, this method is simple to realize. But, in respect that the data volume modified each time is usually small, the method in which all the data are processed each time a small part of data are modified will apparently have a low efficiency.
Method 2: All the data in the changed relationship tables are taken as the processing object. In this method, a mechanism, for example, for setting up a trigger on a relationship table and recording the modified relationship tables during a data modification process, is needed. In comparison with the first method, the realization of this method is relatively complex; moreover, redundant data that are not necessary to be processed may usually be included.
In the realization process of the invention, the inventors find that the above existing methods for data synchronization at least have the following problems:
1) The volume of data to be synchronized is too large. Timed synchronization is to synchronize all the data; for synchronization using relational database, although the above method for obtaining a minimal data variation set may be employed, the basis for determining whether to synchronize is till the variation of data. However, practically not all the changed data needs to be synchronized. Therefore, it cannot be ensured that the volume of data to be synchronized is minimized.
2) Real-time arrival of data cannot be guaranteed. Apparently, it is difficult to realize real-time synchronization of data in timed synchronization. If real-time synchronization is needed, synchronization operation must be performed all the time, such a large data transmission volume is difficult to be realized and it is uneconomical. For the method for data synchronization using relational database, no technical measure for ensuring real-time data synchronization is given in the above prior art.
3) Transaction integrity cannot be guaranteed. No matter it is timed synchronization or synchronization using relational database, the obtaining of data is ruleless and orderless. For example, during the synchronization process of data generated by operating an event, if the event comprises a plurality of steps arranged in time sequence and each step is the triggering condition of the subsequent step, when the information of these steps is synchronized to the target application, the information data of these steps obtained by the target application should be consistent with the order of information data of the steps for synchronizing the data source; otherwise, the order of information of these steps synchronized to the target application may be disturbed, thus the steps may not be executed again.
4) Data filtration and data screening cannot be realized. In the above prior art, data to be synchronized are nonselective. All the data will be synchronized, or the data will be synchronized when it is changed. Therefore, the data that should be synchronized may not be synchronized, while the data that should not be synchronized may be synchronized. As a result, the efficiency will be very low and the data transmission volume will be very large.
5) Other systems interested in changed data cannot be notified in real time. In the above prior art, data can only be synchronized to a fixed target application. Thus, once the target application is changed, it will be difficult to meet the requirement of data synchronization.